-- Keymaps are automatically loaded on the VeryLazy event
-- see ~/.local/share/nvim/lazy/LazyVim/lua/lazyvim/config/keymaps.lua

-- save
vim.keymap.set({ "i", "x", "n", "s" }, "<A-s>", "<cmd>w<cr><esc>", { desc = "Save file" })
-- close buffer
vim.keymap.set("n", "<A-q>", "<cmd>close<cr>", {})
vim.keymap.set("n", "<C-q>", "<cmd>x<cr>", {})

-- delete line like emacs
vim.keymap.set("n", "<C-k>", "dd", {})

-- F series
vim.keymap.set({ "n", "i" }, "<F3>", "gd", {})
vim.keymap.set({ "n", "i" }, "<F12>", "gd", {})
vim.keymap.set("n", "<F5>", "<cmd>RunFile<cr>", {})

-- Run
-- vim.keymap.set({ "n", "i", "s" }, "<F5>", "<cmd>RunFile<cr>", {})
vim.keymap.set({ "n", "i", "s" }, "<C-l>", "<cmd>RunLine<cr>", {})
vim.keymap.set({ "n", "i", "s" }, "<C-f5>", "<cmd>RunLine<cr>", {})
vim.keymap.set({ "n" }, "<leader>rl", "<cmd>RunLine<cr>", {})

-- tab page
vim.keymap.set("n", "<C-1>", "<cmd>1tabnext<cr>", {})
vim.keymap.set("n", "<C-2>", "<cmd>2tabnext<cr>", {})
vim.keymap.set("n", "<C-3>", "<cmd>3tabnext<cr>", {})
vim.keymap.set("n", "<C-4>", "<cmd>4tabnext<cr>", {})
vim.keymap.set("n", "<C-5>", "<cmd>1tabnext<cr>", {})
vim.keymap.set("n", "<C-6>", "<cmd>1tabnext<cr>", {})
vim.keymap.set("n", "<C-7>", "<cmd>1tabnext<cr>", {})
vim.keymap.set("n", "<C-8>", "<cmd>1tabnext<cr>", {})
vim.keymap.set("n", "<C-9>", "<cmd>1tabnext<cr>", {})
vim.keymap.set("n", "<C-0>", "<cmd>tablast<cr>", {})

vim.keymap.set("n", "<leader>1", "<cmd>1tabnext<cr>", {})
vim.keymap.set("n", "<leader>2", "<cmd>2tabnext<cr>", {})
vim.keymap.set("n", "<leader>3", "<cmd>3tabnext<cr>", {})
vim.keymap.set("n", "<leader>4", "<cmd>4tabnext<cr>", {})
vim.keymap.set("n", "<leader>5", "<cmd>1tabnext<cr>", {})
vim.keymap.set("n", "<leader>6", "<cmd>1tabnext<cr>", {})
vim.keymap.set("n", "<leader>7", "<cmd>1tabnext<cr>", {})
vim.keymap.set("n", "<leader>8", "<cmd>1tabnext<cr>", {})
vim.keymap.set("n", "<leader>9", "<cmd>1tabnext<cr>", {})
vim.keymap.set("n", "<leader>0", "<cmd>tablast<cr>", {})

vim.keymap.set("n", "<A-HOME>", "<cmd>tabfirst<cr>", {})
vim.keymap.set("n", "<A-END>", "<cmd>tablast<cr>", {})

-- open file in new tab
vim.keymap.set("n", "<leader>tn", "<cmd>tabnew<cr>", {})
vim.keymap.set("n", "<leader>te", "<cmd>tabedit", {})
vim.keymap.set("n", "<leader>q", "<cmd>close<cr>", {})

-- go to file
vim.keymap.set("n", "gf", "<cmd>tabnew <cfile><cr>", {})
vim.keymap.set("n", "tf", "<cmd>tabnew <cfile><cr>", {})

vim.keymap.set("n", "<A-f>", "<cmd>tabnew <cfile><cr>", {})

-- like vscode
vim.keymap.set("n", "<F12>", "gd", {})
vim.keymap.set("n", "<A-b>", "<leader>fb", {})
